package cn.myblog.ainblog.service;

import cn.myblog.ainblog.mapper.ArticleMapper;
import cn.myblog.ainblog.mapper.CommentMapper;
import cn.myblog.ainblog.model.CommentModel;
import cn.myblog.ainblog.vo.ArticleCategoryVO;
import cn.myblog.ainblog.vo.CommentAndArticleVO;
import cn.myblog.ainblog.vo.CommentReplyVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

/**
 * @author Dovaior
 * @Description 评论的service层
 * @create 2021-05-06 21:32
 **/
@Service
public class CommentService {
    @Autowired
    private CommentMapper commentMapper;

    /**
     * 添加留言
     * @param commentModel 包装这信息的实体类
     */
    public int commentInsert(CommentModel commentModel){
        return commentMapper.insert(commentModel);
    }

    /**
     * 查询指定博文的全部评论
     */
    public List<CommentModel> queryCommentByArticleId(String articleId){
        return commentMapper.queryCommentByArticleId(articleId);
    }

    /**
     * 分页查询----model
     */
    public IPage<CommentModel> selectCommentPage(IPage<CommentModel> page,String articleId){
        return commentMapper.selectCommentPage(page,articleId);
    }
    /**
     * 分页查询---VO
     * @param page 封装的page信息
     * @return 返回信息
     */
    public IPage<CommentAndArticleVO> selectCommentListPage(IPage<CommentAndArticleVO> page){
        return commentMapper.selectCommentListPage(page);
    }

    /**
     * 根据博文id，删除该博文的全部留言
     * @param articleId 指定博文ID
     * @return 返回标识
     */
    public int deleteAllCommentByArticleId(String articleId){
        return commentMapper.deleteAllCommentByArticleId(articleId);
    }

    /**
     * 查询指定博文的全部留言id
     * @param articleId 指定的博文id
     */
    public List<Long> queryCommentIdsByArticleId(String articleId){
        return commentMapper.queryCommentIdsByArticleId(articleId);
    }

    /**
     * 删除指定id的评论
     * @param commentId 指定的评论id
     */
    public int deleteOneCommentByCommentId(Long commentId){
        return commentMapper.deleteById(commentId);
    }

    /**
     * 查询指定留言的内容
     * @param commentId 指定留言id
     */
    public String queryCommentContentByCommentId(Long commentId){
        return commentMapper.queryCommentContentByCommentId(commentId);
    }

    /**
     * 判断指定留言的回复状态
     * @param commentId 指定的留言id
     */
    public int isReplyStatus(Long commentId){
        return commentMapper.isReplyStatus(commentId);
    }

    /**
     * 更新指定留言的回复状态为“已回复”
     * @param commentId 指定留言id
     */
    public int changeStatus(Long commentId){
        return commentMapper.changeStatus(commentId);
    }

    /**
     * 删除留言时，修改回复状态为“未回复”
     * @param commentId 指定的留言id
     */
    public int deChangeStatus(Long commentId){
        return commentMapper.deChangeStatus(commentId);
    }

    /**
     * 查询指定博文的全部留言以及回复信息
     * @param articleId 指定的博文id
     */
    public List<CommentReplyVO> queryAllCommentAndReplyMsgByArticleId(String articleId){
        return commentMapper.queryAllCommentAndReplyMsgByArticleId(articleId);
    }
}
